package oj;

import java.util.LinkedList;
import java.util.Queue;
import java.util.Scanner;


class Postition{
    int x;
    int y;
    int level;
    public Postition(int x,int y,int level){
        this.x=x;
        this.y=y;
        this.level=level;
    }
}
public class Day42S{
    //广度优先遍历
    private static int bfs(char[][] ch,int m,int n){
        int[][] dire={{1,0},{0,1},{0,-1},{-1,0}};
        boolean[][] used=new boolean[10][10];
        //迷宫的出口和入口
        Postition enter=new Postition(0,1,0);
        Postition out=new Postition(9,8,0);

        Queue<Postition> q=new LinkedList<>();
        //将入口加入到队列中
        q.offer(enter);
        while(!q.isEmpty()){
            Postition cur=q.poll();
            used[cur.x][cur.y]=true;
            //如果走到了出口
            if(cur.x==out.x && cur.y==out.y){
                return cur.level;
            }
            //向cur的4个方向遍历
            for(int i=0;i<4;i++){
                Postition next=new Postition(cur.x+dire[i][0],cur.y+dire[i][1],cur.level+1);
                //检查next坐标是否合法
                //检查next位置是否可以移动
                //检查next位置是否被标记过
                if(next.x >=0 && next.x<m && next.y>=0 && next.y<n && ch[next.x][next.y]=='.' && !used[next.x][next.y]){
                    q.offer(next);
                }
            }
        }
        return 0;
    }
    public static void main(String[] args){
        Scanner sc=new Scanner(System.in);
        while(sc.hasNext()){
            char[][] ch=new char[10][10];
            for(int i=0;i<10;i++){
                String str=sc.nextLine();
                for(int j=0;j<10;j++){
                    ch[i][j]=str.charAt(j);
                }
            }
            System.out.println(bfs(ch,10,10));
        }
    }

}